package com.asset.dispoal.file.feature.service;

import com.asset.dispoal.file.feature.api.FileFeatureTableService;
import com.asset.dispoal.file.feature.dto.FileFeatureTableCreateRequest;
import com.asset.dispoal.file.feature.dto.FileFeatureTableExpandCreateRequest;
import com.asset.dispoal.file.feature.dto.FileFeatureTableExpandPageRequest;
import com.asset.dispoal.file.feature.dto.FileFeatureTableExpandPageResponse;
import com.asset.dispoal.file.feature.dto.FileFeatureTableExpandUpdateRequest;
import com.asset.dispoal.file.feature.dto.FileFeatureTablePageRequest;
import com.asset.dispoal.file.feature.dto.FileFeatureTablePageResponse;
import com.asset.dispoal.file.feature.service.command.CreateFileFeatureTableCommand;
import com.asset.dispoal.file.feature.service.command.CreateFileFeatureTableExpandCommand;
import com.asset.dispoal.file.feature.service.command.DeleteFileFeatureTableCommand;
import com.asset.dispoal.file.feature.service.command.DeleteFileFeatureTableExpandCommand;
import com.asset.dispoal.file.feature.service.command.GetFileFeatureTableExpandCommand;
import com.asset.dispoal.file.feature.service.command.QueryPageFileFeatureTableCommand;
import com.asset.dispoal.file.feature.service.command.QueryPageFileFeatureTableExpandCommand;
import com.asset.dispoal.file.feature.service.command.UpdateFileFeatureTableExpandCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

@Service
public class FileFeatureTableServiceImpl implements FileFeatureTableService {
    @Autowired
    QueryPageFileFeatureTableCommand queryPageFileFeatureTableCommand;

    @Autowired
    CreateFileFeatureTableCommand createFileFeatureTableCommand;

    @Autowired
    DeleteFileFeatureTableCommand deleteFileFeatureTableCommand;

    @Autowired
    QueryPageFileFeatureTableExpandCommand queryPageFileFeatureTableExpandCommand;

    @Autowired
    DeleteFileFeatureTableExpandCommand deleteFileFeatureTableExpandCommand;

    @Autowired
    GetFileFeatureTableExpandCommand getFileFeatureTableExpandCommand;

    @Autowired
    CreateFileFeatureTableExpandCommand createFileFeatureTableExpandCommand;

    @Autowired
    UpdateFileFeatureTableExpandCommand updateFileFeatureTableExpandCommand;

    @Override
    public Result<PageVO<FileFeatureTablePageResponse>> queryPage(FileFeatureTablePageRequest request) {
        return queryPageFileFeatureTableCommand.execute(request);
    }

    @Override
    public Result create(FileFeatureTableCreateRequest request) {
        return createFileFeatureTableCommand.execute(request);
    }

    @Override
    public Result delete(String id) {
        return deleteFileFeatureTableCommand.execute(id);
    }

    @Override
    public Result<PageVO<FileFeatureTableExpandPageResponse>> queryExpandPage(FileFeatureTableExpandPageRequest request) {
        return queryPageFileFeatureTableExpandCommand.execute(request);
    }

    @Override
    public Result<FileFeatureTableExpandPageResponse> getExpandById(String id) {
        return getFileFeatureTableExpandCommand.execute(id);
    }

    @Override
    public Result createExpand(FileFeatureTableExpandCreateRequest request) {
        return createFileFeatureTableExpandCommand.execute(request);
    }

    @Override
    public Result updateExpand(FileFeatureTableExpandUpdateRequest request) {
        return updateFileFeatureTableExpandCommand.execute(request);
    }

    @Override
    public Result deleteExpand(String id) {
        return deleteFileFeatureTableExpandCommand.execute(id);
    }
}